Skip to content

Add trompeloil as mocking library#583

Merged
AlexInLog merged 16 commits into
v2from
add_trompeloil
May 23, 2024
Merged

Add trompeloil as mocking library#583
AlexInLog merged 16 commits into
v2from
add_trompeloil

Conversation

@AlexInLog

Copy link
Copy Markdown
Owner

No description provided.

@github-actions

github-actions Bot commented May 22, 2024

Copy link
Copy Markdown
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 312.64 ns 2.22 ns 2.21 ns 1.01
Subscribe empty callbacks to empty observable via pipe operator 315.41 ns 2.23 ns 2.16 ns 1.03

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 711.77 ns 0.31 ns 0.31 ns 1.02
from array of 1 - create + subscribe + current_thread 1065.36 ns 3.51 ns 3.42 ns 1.03
concat_as_source of just(1 immediate) create + subscribe 2339.12 ns 141.18 ns 115.00 ns 1.23
defer from array of 1 - defer + create + subscribe + immediate 775.97 ns 0.32 ns 0.31 ns 1.01
interval - interval + take(3) + subscribe + immediate 2201.80 ns 61.51 ns 59.29 ns 1.04
interval - interval + take(3) + subscribe + current_thread 3143.05 ns 33.54 ns 32.42 ns 1.03
from array of 1 - create + as_blocking + subscribe + new_thread 30621.15 ns 29049.03 ns 28262.35 ns 1.03
from array of 1000 - create + as_blocking + subscribe + new_thread 38258.89 ns 49566.90 ns 52814.22 ns 0.94

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1143.43 ns 0.31 ns 0.31 ns 1.01
immediate_just+filter(true)+subscribe 874.16 ns 0.32 ns 0.31 ns 1.02
immediate_just(1,2)+skip(1)+subscribe 1088.77 ns 0.32 ns 0.31 ns 1.03
immediate_just(1,1,2)+distinct_until_changed()+subscribe 885.81 ns 0.32 ns 0.31 ns 1.04
immediate_just(1,2)+first()+subscribe 1285.35 ns 0.32 ns 0.31 ns 1.04
immediate_just(1,2)+last()+subscribe 985.48 ns 0.32 ns 0.31 ns 1.03
immediate_just+take_last(1)+subscribe 1145.86 ns 18.66 ns 17.60 ns 1.06

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 267.70 ns 2.25 ns 2.16 ns 1.04
current_thread scheduler create worker + schedule 376.61 ns 5.81 ns 5.87 ns 0.99
current_thread scheduler create worker + schedule + recursive schedule 841.41 ns 62.22 ns 55.00 ns 1.13

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 851.15 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 941.90 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2404.22 ns 196.09 ns 169.77 ns 1.16
immediate_just+buffer(2)+subscribe 1600.33 ns 14.16 ns 13.89 ns 1.02
immediate_just+window(2)+subscribe + subscsribe inner 2473.05 ns 1108.63 ns 1078.86 ns 1.03

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1562.59 ns - - 0.00
immediate_just+take_while(true)+subscribe 862.28 ns 0.31 ns 0.31 ns 1.01

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1986.92 ns 0.32 ns 0.31 ns 1.04

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3591.50 ns 189.96 ns 188.14 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3842.14 ns 175.84 ns 172.79 ns 1.02
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 147.37 ns 142.26 ns 1.04
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3668.84 ns 1050.00 ns 968.48 ns 1.08
immediate_just(1) + zip(immediate_just(2)) + subscribe 2162.94 ns 215.63 ns 203.56 ns 1.06

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 35.25 ns 17.21 ns 16.86 ns 1.02

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1446.20 ns 13.96 ns 13.90 ns 1.00
basic sample with immediate scheduler 1392.21 ns 5.73 ns 5.55 ns 1.03

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 986.26 ns 0.32 ns 0.31 ns 1.05

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1096.66 ns 121.26 ns 131.35 ns 0.92

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 990.12 ns 3.94 ns 3.86 ns 1.02
Subscribe empty callbacks to empty observable via pipe operator 976.93 ns 3.90 ns 3.85 ns 1.01

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1936.18 ns 0.23 ns 0.23 ns 1.00
from array of 1 - create + subscribe + current_thread 2437.28 ns 33.79 ns 34.03 ns 0.99
concat_as_source of just(1 immediate) create + subscribe 5375.70 ns 333.40 ns 336.68 ns 0.99
defer from array of 1 - defer + create + subscribe + immediate 1947.22 ns 0.23 ns 0.23 ns 1.00
interval - interval + take(3) + subscribe + immediate 4895.80 ns 114.86 ns 115.69 ns 0.99
interval - interval + take(3) + subscribe + current_thread 5982.16 ns 95.52 ns 95.72 ns 1.00
from array of 1 - create + as_blocking + subscribe + new_thread 82684.69 ns 80737.42 ns 83226.15 ns 0.97
from array of 1000 - create + as_blocking + subscribe + new_thread 87340.64 ns 87134.25 ns 90706.64 ns 0.96

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 2704.55 ns 0.22 ns 0.23 ns 0.95
immediate_just+filter(true)+subscribe 2007.34 ns 0.22 ns 0.23 ns 0.95
immediate_just(1,2)+skip(1)+subscribe 2740.68 ns 0.23 ns 0.23 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2064.94 ns 0.47 ns 0.47 ns 1.00
immediate_just(1,2)+first()+subscribe 3147.58 ns 0.23 ns 0.23 ns 1.00
immediate_just(1,2)+last()+subscribe 2367.07 ns 0.23 ns 0.23 ns 0.99
immediate_just+take_last(1)+subscribe 3170.51 ns 70.21 ns 70.36 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 844.27 ns 4.15 ns 4.03 ns 1.03
current_thread scheduler create worker + schedule 1176.43 ns 39.18 ns 38.68 ns 1.01
current_thread scheduler create worker + schedule + recursive schedule 1971.57 ns 202.97 ns 206.34 ns 0.98

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2000.32 ns 0.22 ns 0.23 ns 0.95
immediate_just+scan(10, std::plus)+subscribe 2233.72 ns 0.45 ns 0.47 ns 0.96
immediate_just+flat_map(immediate_just(v*2))+subscribe 5043.34 ns 392.66 ns 402.78 ns 0.97
immediate_just+buffer(2)+subscribe 2383.87 ns 66.20 ns 72.85 ns 0.91
immediate_just+window(2)+subscribe + subscsribe inner 5098.00 ns 2192.75 ns 2293.46 ns 0.96

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1941.76 ns - - 0.00
immediate_just+take_while(true)+subscribe 2002.07 ns 0.22 ns 0.25 ns 0.89

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 4754.77 ns 0.23 ns 0.23 ns 0.99

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 7445.44 ns 435.50 ns 440.14 ns 0.99
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 8350.44 ns 441.11 ns 442.90 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 435.59 ns 461.60 ns 0.94
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 7405.01 ns 1786.55 ns 1910.58 ns 0.94
immediate_just(1) + zip(immediate_just(2)) + subscribe 4813.07 ns 792.52 ns 868.54 ns 0.91

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 72.96 ns 49.11 ns 49.34 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 2709.94 ns 68.92 ns 73.08 ns 0.94
basic sample with immediate scheduler 2701.73 ns 14.15 ns 15.40 ns 0.92

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 2308.89 ns 0.23 ns 0.24 ns 0.97

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 6443.61 ns 3982.05 ns 4108.33 ns 0.97

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 269.65 ns 1.57 ns 1.54 ns 1.02
Subscribe empty callbacks to empty observable via pipe operator 279.89 ns 1.55 ns 1.54 ns 1.01

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 560.26 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 788.37 ns 4.01 ns 4.01 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2371.00 ns 135.66 ns 134.50 ns 1.01
defer from array of 1 - defer + create + subscribe + immediate 782.26 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2230.64 ns 58.31 ns 58.26 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3214.86 ns 30.88 ns 31.17 ns 0.99
from array of 1 - create + as_blocking + subscribe + new_thread 30564.40 ns 28402.70 ns 27416.00 ns 1.04
from array of 1000 - create + as_blocking + subscribe + new_thread 35519.04 ns 32899.03 ns 34862.26 ns 0.94

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1165.34 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 848.31 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1084.92 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 866.24 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1397.37 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 1005.80 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1192.33 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 282.35 ns 1.56 ns 1.54 ns 1.01
current_thread scheduler create worker + schedule 404.29 ns 4.63 ns 4.01 ns 1.15
current_thread scheduler create worker + schedule + recursive schedule 858.08 ns 58.00 ns 55.59 ns 1.04

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 853.76 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 965.66 ns 0.62 ns 0.62 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2240.09 ns 138.76 ns 138.90 ns 1.00
immediate_just+buffer(2)+subscribe 1526.31 ns 13.89 ns 14.21 ns 0.98
immediate_just+window(2)+subscribe + subscsribe inner 2500.15 ns 929.46 ns 874.98 ns 1.06

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 838.46 ns - - 0.00
immediate_just+take_while(true)+subscribe 852.19 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1993.09 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3289.48 ns 160.07 ns 160.85 ns 1.00
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3741.00 ns 146.56 ns 148.39 ns 0.99
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 142.36 ns 142.14 ns 1.00
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3421.32 ns 846.79 ns 840.50 ns 1.01
immediate_just(1) + zip(immediate_just(2)) + subscribe 2207.51 ns 208.89 ns 203.35 ns 1.03

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 54.04 ns 18.32 ns 18.53 ns 0.99

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1296.47 ns 12.04 ns 11.11 ns 1.08
basic sample with immediate scheduler 1296.53 ns 5.86 ns 6.17 ns 0.95

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 985.57 ns 0.31 ns 0.31 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1072.96 ns 137.43 ns 134.79 ns 1.02

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 570.46 ns 4.01 ns 4.75 ns 0.84
Subscribe empty callbacks to empty observable via pipe operator 592.29 ns 4.01 ns 4.71 ns 0.85

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1196.04 ns 4.93 ns 5.24 ns 0.94
from array of 1 - create + subscribe + current_thread 1459.04 ns 15.74 ns 15.74 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 3906.91 ns 175.39 ns 182.97 ns 0.96
defer from array of 1 - defer + create + subscribe + immediate 1219.26 ns 4.94 ns 5.55 ns 0.89
interval - interval + take(3) + subscribe + immediate 3395.24 ns 133.59 ns 133.58 ns 1.00
interval - interval + take(3) + subscribe + current_thread 4275.95 ns 52.24 ns 51.55 ns 1.01
from array of 1 - create + as_blocking + subscribe + new_thread 124787.50 ns 113760.00 ns 123700.00 ns 0.92
from array of 1000 - create + as_blocking + subscribe + new_thread 136225.00 ns 139275.00 ns 138914.29 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 2317.67 ns 12.87 ns 12.87 ns 1.00
immediate_just+filter(true)+subscribe 1431.89 ns 11.71 ns 11.64 ns 1.01
immediate_just(1,2)+skip(1)+subscribe 1862.66 ns 13.03 ns 13.06 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1407.34 ns 15.76 ns 15.83 ns 1.00
immediate_just(1,2)+first()+subscribe 2205.76 ns 12.63 ns 12.95 ns 0.98
immediate_just(1,2)+last()+subscribe 1871.77 ns 14.12 ns 14.05 ns 1.00
immediate_just+take_last(1)+subscribe 2185.19 ns 60.68 ns 59.29 ns 1.02

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 509.79 ns 6.48 ns 6.17 ns 1.05
current_thread scheduler create worker + schedule 697.01 ns 13.04 ns 13.20 ns 0.99
current_thread scheduler create worker + schedule + recursive schedule 1153.47 ns 103.18 ns 105.50 ns 0.98

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1662.93 ns 11.34 ns 11.86 ns 0.96
immediate_just+scan(10, std::plus)+subscribe 1564.71 ns 21.29 ns 21.58 ns 0.99
immediate_just+flat_map(immediate_just(v*2))+subscribe 4124.10 ns 222.47 ns 224.03 ns 0.99
immediate_just+buffer(2)+subscribe 2428.05 ns 64.17 ns 58.31 ns 1.10
immediate_just+window(2)+subscribe + subscsribe inner 4224.64 ns 1236.27 ns 1252.19 ns 0.99

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1430.50 ns 11.41 ns 11.41 ns 1.00
immediate_just+take_while(true)+subscribe 1417.62 ns 11.70 ns 11.65 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 3525.65 ns 7.09 ns 7.71 ns 0.92

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5582.76 ns 235.88 ns 234.81 ns 1.00
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 6516.23 ns 223.21 ns 232.16 ns 0.96
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 233.14 ns 227.49 ns 1.02
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5873.89 ns 951.94 ns 962.29 ns 0.99
immediate_just(1) + zip(immediate_just(2)) + subscribe 3869.73 ns 545.13 ns 527.24 ns 1.03

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 37.17 ns 25.59 ns 27.44 ns 0.93

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1983.83 ns 58.50 ns 56.82 ns 1.03
basic sample with immediate scheduler 1946.68 ns 36.73 ns 37.95 ns 0.97

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1589.05 ns 19.99 ns 19.97 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2467.32 ns 336.92 ns 336.92 ns 1.00

@AlexInLog AlexInLog marked this pull request as ready for review May 23, 2024 07:13
@AlexInLog AlexInLog changed the title Add trompeloil Add trompeloil as mocking library May 23, 2024
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

@AlexInLog AlexInLog merged commit ac8981d into v2 May 23, 2024
@AlexInLog AlexInLog deleted the add_trompeloil branch May 23, 2024 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant